home *** CD-ROM | disk | FTP | other *** search
/ Light ROM 1 / LIGHT-ROM 1 (Amiga Library Services)(1994).iso / ffdisks / d954.lha / MFT / mft.asm < prev    next >
Assembly Source File  |  1993-10-03  |  3KB  |  206 lines

  1.  
  2. Num_Functions equ 7   ; Sieben Funktionen
  3.  
  4.  include "args.i"
  5.  
  6.  move.l a0,d6
  7.  move.l d0,d7
  8. OpenDos
  9.  move.l 4,a6
  10.  move.l #37,d0
  11.  lea Dos(PC),a1
  12.  jsr -552(a6)
  13.  tst.l d0
  14.  beq Fine
  15.  lea DosB(PC),a0
  16.  move.l d0,(a0)
  17. Parse
  18.  OpenArgs Donknow
  19.  lea ArgList(PC),a0
  20. WhatFunct
  21.  move.l (a0),a0
  22.  move.l (a0),d0
  23.  cmp.b #Num_Functions,d0
  24.  bhi BadFunction
  25.  subq #1,d0
  26.  beq Rename
  27.  subq #1,d0
  28.  beq Delete
  29.  subq #1,d0
  30.  beq MakeDir
  31.  subq #1,d0
  32.  beq Fault
  33.  subq #1,d0
  34.  beq Comment
  35.  subq #1,d0
  36.  beq Delay
  37.  bra BadFunction
  38. Args_Away
  39.  CloseArgs
  40. CloseDos
  41.  move.l DosB(PC),a1
  42.  move.l 4,a6
  43.  jsr -414(a6)
  44. Fine
  45.  moveq #0,d0
  46.  rts
  47.  
  48. Rename
  49.  lea ArgList(PC),a0
  50.  tst.l 4(a0)
  51.  beq NoArgs
  52.  tst.l 8(a0)
  53.  beq NoArgs
  54.  move.l 4(a0),d1
  55.  move.l 8(a0),d2
  56.  move.l DosB(PC),a6
  57.  jsr -78(a6)
  58.  tst.l d0
  59.  beq Error
  60.  bra Args_Away
  61.  
  62. Delete
  63.  lea ArgList(PC),a0
  64.  tst.l 4(a0)
  65.  beq NoArgs
  66.  move.l 4(a0),d1
  67.  move.l DosB(PC),a6
  68.  jsr -72(a6)
  69.  tst.l d0
  70.  beq Error
  71.  bra Args_Away
  72.  
  73. MakeDir
  74.  lea ArgList(PC),a0
  75.  move.l 4(a0),d1
  76.  tst.l d1
  77.  beq NoArgs
  78.  move.l DosB(PC),a6
  79.  jsr -120(a6)
  80.  move.l d0,d1
  81.  tst.l d0
  82.  beq Error
  83.  jsr -90(a6)
  84.  bra Args_Away
  85.  
  86. NoArgs
  87.  jsr -60(a6)
  88.  tst.l d0
  89.  beq Sorry2
  90.  move.l d0,d1
  91.  lea Args_Err(PC),a0
  92.  move.l a0,d2
  93.  moveq #Args_ErrE-Args_Err,d3
  94.  jsr -48(a6)
  95. Sorry2
  96.  bra Args_Away
  97.  
  98. Error
  99.  jsr -132(a6)
  100.  tst.l d0
  101.  beq Args_Away
  102. Jump_In
  103.  move.l d0,d1
  104.  lea Sorry(PC),a0
  105.  move.l a0,d2
  106.  lea Buf(PC),a0
  107.  move.l a0,d3
  108.  move.l #60,d4
  109.  jsr -468(a6)
  110.  lea Buf(PC),a0
  111.  cmp.b #"A",2(a0)
  112.  bcc NixDa
  113.  sub.b #$20,2(a0)
  114. NixDa
  115.  jsr -60(a6)
  116.  tst.l d0
  117.  beq Args_Away
  118.  move.l d0,d1
  119.  move.l d1,d5
  120.  lea Buf(PC),a0
  121.  move.l a0,d2
  122.  clr.l d3
  123. .loop
  124.  addq #1,d3
  125.  tst.b (a0)+
  126.  bne .loop
  127.  lea Buf(PC),a0
  128.  move.b #".",-1(a0,d3)
  129.  addq #2,d2
  130.  jsr -48(a6)
  131.  move.l d5,d1
  132.  lea CR(PC),a0
  133.  move.l a0,d2
  134.  moveq #2,d3
  135.  jsr -48(a6)
  136.  bra Args_Away
  137.  
  138. Fault
  139.  lea ArgList(PC),a0
  140.  move.l 12(a0),a0
  141.  move.l (a0),d0
  142.  tst.l d0
  143.  beq NoArgs
  144.  bra Jump_In
  145.  
  146. Comment
  147.  lea ArgList(PC),a0
  148.  move.l 4(a0),d1
  149.  tst.l d1
  150.  beq NoArgs
  151.  move.l 8(a0),d2
  152.  tst.l d2
  153.  beq NoArgs
  154.  jsr -180(a6)
  155.  tst.l d0
  156.  beq Error
  157.  bra Args_Away
  158.  
  159. BadFunction
  160.  lea ArgList(PC),a0
  161.  move.l 12(a0),a0
  162.  move.l #236,(a0)
  163.  bra Fault
  164. Delay
  165.  lea ArgList(PC),a0
  166.  move.l 12(a0),a0
  167.  move.l (a0),d1
  168.  tst.l d1
  169.  beq NoArgs
  170.  mulu #50,d1
  171.  jsr -198(a6)
  172.  bra Args_Away
  173. Donknow
  174.  jsr -60(a6)
  175.  tst.l d0
  176.  beq Args_Away
  177.  move.l d0,d1
  178.  lea Info(PC),a0
  179.  move.l a0,d2
  180.  move.l #InfoE-Info,d3
  181.  jsr -48(a6)
  182.  bra Args_Away
  183.  
  184. Dos           dc.b "dos.library",0
  185. DosB          ds.l 1
  186. ArgP          ds.l 1
  187. Template      dc.b "FUNCTION/N/A,ARG1/A,ARG2,NUMBER/N",0
  188. ArgList       dc.l 0,0,0,0
  189. Args_Err     dc.b "Bad args",13,10
  190. Args_ErrE
  191. Sorry         dc.b 0
  192. CR           dc.b 13,10
  193. Buf           ds.l 25
  194. Info    dc.b 12,10
  195.     dc.b "       MFT - Multi Functions Tool --- V1.03",10,10
  196.     dc.b "MFT FUNCTION (number) ARGUMENT1 (String) ARGUMENT2 (String) NUMBER",10,10
  197.     dc.b 10,10,"1) Rename  : Call file ARGUMENT1 like ARGUMENT2",10
  198.     dc.b "2) Delete  : Kill file ARGUMENT1",10
  199.     dc.b "3) MakeDir : Create Dir called ARGUMENT1",10,"4) Fault   : Give out error n",10
  200.     dc.b "5) Comment : Give file ARGUMENT1 the comment ARGUMENT2",10
  201.     dc.b "6) Delay   : Wait n Seconds",10,10
  202.     dc.b 'n is: MFT "" "" n',10,10
  203.     dc.b "This tool's >>> F R E E W A R E <<< !!!",10,10
  204. InfoE
  205.  end
  206.